The present invention relates to the field of software version management, and more to particularly to a method and system for managing test case versions, particularly in a telecommunications system test environment.
An important phase of the development of software and hardware systems is testing. In telecommunications systems, whenever new equipment is added to a network or new feature is implemented in a network, the telecommunications service provider must run tests to see how the new equipment or feature operates in the network and how the new equipment or feature works with other equipment and how features affect the performance of the network as a whole. System testing is typically implemented through test cases written by test engineers. Test cases include scripts that cause test equipment, such as bulk call generators, to simulate actual network conditions.
In telecommunications systems, equipment, such as switches, is operated by software application programs. New services and features, and improvements to existing features, are implemented through new versions of the applications programs, which are known in the art as loads. Whenever a new feature or improvement is added, a new version or load must be developed.
Telecommunications networks tend to be heterogeneous. A network typically includes different models of equipment made by a particular manufacturer, or equipment made by different manufacturers, all performing the same function in the network. For example, a network usually includes many different model switches. Each model switch is operated by software specifically adapted to the switch. While the software for each switch causes the same or similar function, the actual code is likely to be different.
Many products are derivatives of, or follow on releases to, other products. Test cases used for testing earlier products often provide useful base test cases for the development of test cases for later products. Often, a test case version developed for one application program load is completely valid for testing a later load. Similarly, the test case version developed to test an application program load on one hardware platform is often valid for testing a similar load a different platform. However, in some instances, it is necessary to modify a test case version written for an earlier load in order to test properly a later load.
In a typical test environment, several different software loads are under test at any one time by several different test engineers. In a dynamic and rapidly changing environment, test engineers need substantially free access to test cases for use in the testing of equipment and services and the development of new test cases. However, it is necessary to preserve earlier, properly functioning, test case versions as new test case versions are created. It is also necessary to provide a mechanism by which test engineers can simultaneously correct test cases that are not functioning properly and protect the test cases that work from inadvertent corruption by other test engineers.
The present invention provides a method of and system for managing test case versions, and is particularly adapted for managing test case versions in a telecommunication system test environment. Each test case version is associated with an application program load version. A test case version may be associated with a hardware platform type as well as an application program load version. A set of test case versions is maintained in a test case library or database. Each test case version is identified in the test case library by date order sequence number.
The present invention provides a method of selecting a test case version from the set of test case versions to use with respect to a particular application program load version. The method selects a subset of test case versions from the set of test case versions. The subset includes test case versions, if any, associated with the particular application program load version and test case versions associated with application program load versions earlier than the particular application program load version. The method selects the latest application program load version included in the subset of test case versions. The method then selects the latest test case version from the versions for the selected latest application program load version.
The user may use the selected test case to test the particular application program load version or as a template to create a new test case version for the particular application program load version. The user creates a new test case version by editing the selected test case version and testing the edited test case version. The user continues the editing and testing process until the user is satisfied that the new version works as intended. When the user is satisfied, the user commits the edited test case version to the test case database and the system assigns the new version the next sequential version number. If the user is not satisfied, the user aborts the test case without adding a new version to the test case database. The present invention thus allows multiple users to work with test case versions and create new versions without locking down the test case database or implementing a check-out/check-in system.